iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
AI/ ML & Data

AI 到底是怎麼換臉的?系列 第 4

2024 Day 4:卷積神經網絡(CNN)

  • 分享至 

  • xImage
  •  

本系列文章部分內容由AI產生,最後皆有通過人工確認內容及潤稿。

在前三天的學習中,我們深入了解了人工神經網絡的基本原理和訓練方法。然而,傳統的多層感知器(MLP)在處理高維度、結構化數據(如圖像)時存在局限性。今天,我們將探討專為處理圖像和視頻等時空數據而設計的卷積神經網絡(Convolutional Neural Networks,CNN)。CNN在計算機視覺領域取得了巨大的成功,是實現AI換臉技術的關鍵組件之一。


本日學習目標

  • 理解卷積神經網絡的基本結構和原理
  • 掌握卷積、池化等核心操作的概念和計算方式
  • 了解CNN在圖像處理和計算機視覺中的應用
  • 認識經典的CNN架構,如LeNet、AlexNet、VGG、ResNet等

為何需要卷積神經網絡

多層感知器的局限性

  • 參數量巨大:對於高維度的圖像數據,傳統的MLP需要大量的權重參數,導致計算和存儲成本過高。
  • 缺乏空間結構信息:MLP無法有效利用圖像中的空間結構,如鄰近像素之間的關係。
  • 過擬合風險高:大量參數容易導致模型過擬合,泛化能力差。

卷積神經網絡的優勢

  • 參數共享:卷積核在整個輸入上滑動,權重共享,極大地減少了參數量。
  • 局部連接:只與局部感受野內的神經元相連,保留了空間結構信息。
  • 自動學習特徵:能夠自動從數據中學習多層次的特徵表示。

卷積神經網絡的基本結構

典型的CNN由以下幾種層組成:

  • 卷積層(Convolutional Layer)
  • 激活函數(Activation Function)
  • 池化層(Pooling Layer)
  • 全連接層(Fully Connected Layer)
    https://ithelp.ithome.com.tw/upload/images/20240918/20169508OhAvNgYzJS.png
    圖1 CNN的典型結構,包括卷積層、池化層和全連接層。

卷積層(Convolutional Layer)

卷積操作

卷積層是CNN的核心,用於提取輸入數據的局部特徵。
卷積計算公式
對於輸入圖像𝐼和卷積核(濾波器)𝐾,卷積操作定義為:
https://ithelp.ithome.com.tw/upload/images/20240918/20169508vPz4dLb19l.png

  • 𝐼(i+m,j+n):輸入圖像的像素值
  • 𝐾(𝑚,𝑛):卷積核的權重

卷積核(濾波器)

  • 大小:通常為 3×3、5×5 等小尺寸。
  • 深度:與輸入特徵圖的通道數相同。
  • 數量:多個卷積核可以學習不同的特徵。

特徵圖(Feature Map)

卷積操作後得到的輸出稱為特徵圖,反映了輸入數據在某種模式下的響應。
https://ithelp.ithome.com.tw/upload/images/20240918/20169508s7W3Y34ZfZ.png
圖2 卷積核在輸入圖像上滑動,計算卷積結果。


激活函數(Activation Function)

在卷積層之後,通常會應用非線性激活函數,如ReLU、Leaky ReLU等,為模型引入非線性能力。


池化層(Pooling Layer)

池化的目的

  • 降維:減少特徵圖的尺寸,降低計算量。
  • 防止過擬合:提高模型的泛化能力。
  • 位置不變性:提取主要特徵,減少位置偏移的影響。

常見的池化方法

  • 最大池化(Max Pooling):取區域內的最大值。
    https://ithelp.ithome.com.tw/upload/images/20240918/20169508yaMcLbAmdl.png-
  • 平均池化(Average Pooling):取區域內的平均值。

https://ithelp.ithome.com.tw/upload/images/20240918/20169508mgWFIYl0mD.png
圖3 最大池化和平均池化在特徵圖上進行降維。


全連接層(Fully Connected Layer)

在經過多層卷積和池化後,CNN通常會在最後加入一個或多個全連接層,用於將提取的特徵映射到最終的分類或回歸結果。


經典的CNN架構

LeNet-5(1998年)

  • 提出者:Yann LeCun
  • 應用:手寫數字識別
  • 結構:包含兩個卷積層、兩個池化層和兩個全連接層。

AlexNet(2012年)

  • 提出者:Alex Krizhevsky 等
  • 突破:首次在ImageNet比賽中取得壓倒性勝利,將錯誤率從26%降至15%。
  • 特點:
    • 使用了更深的網絡(8層)
    • 引入了ReLU激活函數
    • 使用了Dropout和數據增強技術

VGGNet(2014年)

  • 提出者:Karen Simonyan 和 Andrew Zisserman
  • 特點:
    • 採用小卷積核(3×3),堆疊更多的卷積層
    • 網絡深度達到16或19層

ResNet(2015年)

  • 提出者:Kaiming He 等
  • 突破:引入殘差學習(Residual Learning),成功訓練超過100層的深度網絡。
  • 特點:
    • 解決了深層網絡的退化問題
    • 使用了跳躍連接(Shortcut Connections)
      https://ithelp.ithome.com.tw/upload/images/20240918/20169508Mj41eKXbdY.png
      圖3 來源 AlexNet結構說明

CNN在圖像處理中的應用

圖像分類

  • 任務:將圖像分配到預定的類別。
  • 應用:物體識別、場景分類、醫學影像診斷。

物體檢測

  • 任務:在圖像中定位並識別物體。
  • 方法:Faster R-CNN、YOLO、SSD等。

圖像分割

  • 任務:將圖像劃分為有意義的區域。
  • 方法:FCN(全卷積網絡)、U-Net等。

人臉識別與分析

  • 任務:識別和驗證人臉,分析面部表情。
  • 應用:安防監控、身份驗證、表情識別。

風格轉換與圖像生成

  • 任務:將一張圖像的風格應用到另一張圖像上。
  • 方法:風格遷移、GAN等。

卷積神經網絡的實踐技巧

避免過擬合

  • 數據增強:翻轉、旋轉、裁剪等方法擴充訓練數據。
  • 正則化:使用Dropout、L2正則化等技術。
  • 早停:在驗證集性能不再提升時停止訓練。

加速訓練

  • 批標準化(Batch Normalization):加速收斂,穩定訓練過程。
  • 優化算法:使用自適應學習率的優化器,如Adam。

模型設計

  • 網絡深度與寬度:根據任務需求調整網絡的層數和每層的通道數。
  • 卷積核大小:小尺寸的卷積核堆疊(如3×3)可以代替大尺寸的卷積核,減少參數量。

CNN在AI換臉技術中的應用

在AI換臉技術中,CNN扮演了關鍵角色:

  • 特徵提取:CNN能夠有效地提取人臉的關鍵特徵,包括輪廓、五官等。
  • 圖像生成:結合生成對抗網絡(GAN),CNN用於生成逼真的人臉圖像。
  • 圖像融合:將目標人臉的特徵與源圖像進行融合,實現自然的換臉效果。

總結

通過今天的學習,我們深入了解了卷積神經網絡的基本結構和原理,以及它在圖像處理中的廣泛應用。CNN是計算機視覺領域的核心模型,也是實現AI換臉技術的重要工具。在接下來的課程中,我們將進一步探討生成式模型和具體的換臉技術實現。
那我們就明天見了!


參考資源


上一篇
2024 Day 3:神經網絡(Neural Network)基礎
下一篇
2024 Day 5:生成式模型介紹—自編碼器與變分自編碼器
系列文
AI 到底是怎麼換臉的?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言